/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package datos;

import java.util.ArrayList;
import java.util.Iterator;

/**
 *
 * @author LEONARDO
 */
public class Pais implements Comparable<Pais> {
    private Continente continente;
    private ArrayList paisesLimitrofes;
    private String nombre;
    private Simbolo simbolo;
    private String color;
    private int jugador;
    private int tropas;
  
    public Continente getContinente() {
        return continente;
    }

    public void setContinente(Continente continente) {
        this.continente = continente;
    }

    public ArrayList getPaisesLimitrofes() {
        return paisesLimitrofes;
    }

    public void setPaisesLimitrofes(ArrayList paisesLimitrofes) {
        this.paisesLimitrofes = paisesLimitrofes;
    }

    public Simbolo getSimbolo() {
        return simbolo;
    }

    public void setSimbolo(Simbolo simbolo) {
        this.simbolo = simbolo;
    }

    public int getJugador() {
        return jugador;
    }

    public void setJugador(int jugador) {
        this.jugador = jugador;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public Pais(Continente continente, String nombre) 
    {
        this.nombre=nombre;
        this.continente = continente;

       
        paisesLimitrofes= new ArrayList();
        
     
    }
    public  Pais(String nom, String co, int tro)
    {
        nombre=nom;
        color=co;
        tropas=tro;
    }
    public void agregarSimbolo(Simbolo sim)
    {
        simbolo=sim;
    }
    public void agregarLimitrofe(Pais pais)
    {
       if(!esYaUnPaisLimitrofe(pais))
       {
           paisesLimitrofes.add(pais);
           pais.agregarLimitrofe(this);
       }
     
  
    }

    public boolean esYaUnPaisLimitrofe(Pais pais) 
    {
        if(paisesLimitrofes == null)
    {
        return false;
    }
        Iterator i = paisesLimitrofes.iterator();
            while(i.hasNext())
            {
              Pais aux=(Pais)i.next();
              if(aux.nombre==pais.nombre)
              {   return true;
              }
              
            }
            return false;
    }



    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setTropas(int a) {
        tropas=a;
    }
    public int getTropas()
    {
        return tropas;
    }

    @Override
        public int compareTo(Pais arg0) {
        return nombre.compareTo(arg0.nombre);
    }


        @Override
    public int hashCode(){
        return Math.abs(nombre.hashCode());
    }

    @Override
    public boolean equals(Object obj){
        if(obj instanceof Pais)
            return hashCode() == obj.hashCode();
        else
            return false;
    }
    

}
